package com.zhiche.lisa.bms.service.driver;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.zhiche.lisa.bms.dao.model.driver.VehicleClassify;
import com.zhiche.lisa.bms.pojo.vo.driver.VehicleClassifyVO;
import com.zhiche.lisa.core.supports.BaseException;
import org.springframework.validation.BindingResult;

import java.util.List;

/**
 * <p>
 * 车型分类表 服务类
 * </p>
 *
 * @author zhaoguixin
 * @since 2018-08-30
 */
public interface IVehicleClassifyService extends IService<VehicleClassify> {

    /**
     * 分页查询车型
     * @param page
     * @return
     */
    Page<VehicleClassifyVO> listByPage(Page<VehicleClassifyVO> page);

    /**
     * 添加车型信息
     * @param vehicleClassifyVO
     * @param br
     * @return
     */
    Integer add(VehicleClassifyVO vehicleClassifyVO, BindingResult br);

    /**
     * 更新车型信息
     * @param vehicleClassifyVO
     * @param br
     * @return
     */
    Boolean update(VehicleClassifyVO vehicleClassifyVO, BindingResult br);

    /**
     * 更新线路可用还是不可用
     * @param id
     * @param enableOrDisabled
     * @return
     */
    Boolean enableOrDisabled(Integer id, Boolean enableOrDisabled);

    /**
     * 根据id得到车型信息
     * @param id
     * @return
     */
    VehicleClassifyVO getById(Integer id);

    /**
     * 删除车辆信息
     * @param id
     * @return
     * @throws BaseException
     */
    Boolean del(Integer id) throws BaseException;

    /**
     * 根据名称查找
     * @param key
     * @return
     */
    List<VehicleClassifyVO> listByName(String key);

    /**
     * 根据车型编码获取油类型
     *
     * @param code
     * @return
     */
    VehicleClassify getVehicleClassfyByVmCode(String code);

}
